package com.sen.design.principle.dependenceinversion;

/**
 * 依赖倒置原则：高层模块不应该依赖低层模块，应该都依赖其抽象
 */
public class Test {
    public static void main(String[] args) {

        // 第一种方式 方法接口依赖
        LiSen liSen = new LiSen("liSen");
        liSen.studyCourse(new JavaCourse());
        liSen.studyCourse(new PythonCourse());

        System.out.println("=======================");
        // 第二种 成员属性注入
        LiSen sen = new LiSen("sen");
        sen.setiCourse(new JavaCourse());
        sen.studyCourse();
        sen.setiCourse(new PythonCourse());
        sen.studyCourse();
    }
}
